//
//  Queue.h
//  Queue
//
//  Created by Xavier on 2023/10/16.
//

#ifndef Queue_h
#define Queue_h

#include <stdio.h>
#include <stdlib.h>
#endif /* Queue_h */
typedef int QDataType;
typedef int CQListNode;


// 链式结构：表示队列 - 非循环队列
typedef struct QListNode
{
    struct QListNode* pNext;
    QDataType data;
}QNode;
// 队列的结构
typedef struct Queue
{
    QNode* front;
    QNode* rear;
}Queue;

// 初始化队列
void QueueInit(Queue* q);
// 队尾入队列
void QueuePush(Queue* q, QDataType data);
// 队头出队列
void QueuePop(Queue* q);
// 获取队列头部元素
QDataType QueueFront(Queue* q);
// 获取队列队尾元素
QDataType QueueBack(Queue* q);
// 获取队列中有效元素个数
int QueueSize(Queue* q);
// 检测队列是否为空，如果为空返回非零结果，如果非空返回0
int QueueEmpty(Queue* q);
// 销毁队列
void QueueDestroy(Queue* q);
//打印队列
void QueuePrint(Queue* q);

